home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-04-30 | 4.4 KB | 86 lines | [TEXT/CWIE] |
- // >>> ⌐ 1996-1997 Microsoft Corporation. All rights reserved. <<<
- class CAXThreadManager :
- public CBaseCOM,
- public IMacThreadManager
- {
- public:
- CAXThreadManager(AXThreadCallbacks* inThreadCallbacks) { mThreadCallbacks = *inThreadCallbacks; }
-
- // *** IUnknown methods ***
- STDMETHOD (QueryInterface) (THIS_ REFIID inRefIID, void **outObj);
- STDMETHOD_(ULONG, AddRef)(void) { return CBaseCOM::AddRef(); }
- STDMETHOD_(ULONG, Release)(void) { return CBaseCOM::Release(); }
-
- // **** IMacThreadManager methods ***
- STDMETHOD( CreateThreadPool)(THIS_ ThreadStyle threadStyle, short numToCreate, Size stackSize)
- { return mThreadCallbacks.AXCreateThreadPool(threadStyle, numToCreate, stackSize); }
-
- STDMETHOD( GetFreeThreadCount)(THIS_ ThreadStyle threadStyle, short *freeCount)
- { return mThreadCallbacks.AXGetFreeThreadCount(threadStyle, freeCount); }
-
- STDMETHOD( GetSpecificFreeThreadCount)(THIS_ ThreadStyle threadStyle, Size stackSize, short *freeCount)
- { return mThreadCallbacks.AXGetSpecificFreeThreadCount(threadStyle, stackSize, freeCount); }
-
- STDMETHOD( GetDefaultThreadStackSize)(THIS_ ThreadStyle threadStyle, Size *stackSize)
- { return mThreadCallbacks.AXGetDefaultThreadStackSize(threadStyle, stackSize); }
-
- STDMETHOD( ThreadCurrentStackSpace)(THIS_ ThreadID thread, unsigned long *freeStack)
- { return mThreadCallbacks.AXThreadCurrentStackSpace(thread, freeStack); }
-
- STDMETHOD( NewThread)(THIS_ ThreadStyle threadStyle, ThreadEntryProcPtr threadEntry, void *threadParam, Size stackSize, ThreadOptions options, void **threadResult, ThreadID *threadMade)
- { return mThreadCallbacks.AXNewThread(threadStyle, threadEntry, threadParam, stackSize, options, threadResult, threadMade); }
-
- STDMETHOD( DisposeThread)(THIS_ ThreadID threadToDump, void *threadResult, Boolean recycleThread)
- { return mThreadCallbacks.AXDisposeThread(threadToDump, threadResult, recycleThread); }
-
- STDMETHOD( YieldToThread)(THIS_ ThreadID suggestedThread)
- { return mThreadCallbacks.AXYieldToThread(suggestedThread); }
-
- STDMETHOD( YieldToAnyThread)(THIS)
- { return mThreadCallbacks.AXYieldToAnyThread(); }
-
- STDMETHOD( GetCurrentThread)(THIS_ ThreadID *currentThreadID)
- { return mThreadCallbacks.AXGetCurrentThread(currentThreadID); }
-
- STDMETHOD( GetThreadState)(THIS_ ThreadID threadToGet, ThreadState *threadState)
- { return mThreadCallbacks.AXGetThreadState(threadToGet, threadState); }
-
- STDMETHOD( SetThreadState)(THIS_ ThreadID threadToSet, ThreadState newState, ThreadID suggestedThread)
- { return mThreadCallbacks.AXSetThreadState(threadToSet, newState, suggestedThread); }
-
- STDMETHOD( SetThreadStateEndCritical)(THIS_ ThreadID threadToSet, ThreadState newState, ThreadID suggestedThread)
- { return mThreadCallbacks.AXSetThreadStateEndCritical(threadToSet, newState, suggestedThread); }
-
- STDMETHOD( SetThreadScheduler)(THIS_ ThreadSchedulerProcPtr threadScheduler)
- { return mThreadCallbacks.AXSetThreadScheduler(threadScheduler); }
-
- STDMETHOD( SetThreadSwitcher)(THIS_ ThreadID thread, ThreadSwitchProcPtr threadSwitcher, void *switchProcParam, Boolean inOrOut)
- { return mThreadCallbacks.AXSetThreadSwitcher(thread, threadSwitcher, switchProcParam, inOrOut); }
-
- STDMETHOD( SetThreadTerminator)(THIS_ ThreadID thread, ThreadTerminationProcPtr threadTerminator, void *terminationProcParam)
- { return mThreadCallbacks.AXSetThreadTerminator(thread, threadTerminator, terminationProcParam); }
-
- STDMETHOD( ThreadBeginCritical)(THIS)
- { return mThreadCallbacks.AXThreadBeginCritical(); }
-
- STDMETHOD( ThreadEndCritical)(THIS)
- { return mThreadCallbacks.AXThreadEndCritical(); }
-
- STDMETHOD( SetDebuggerNotificationProcs)(THIS_ DebuggerNewThreadProcPtr notifyNewThread, DebuggerDisposeThreadProcPtr notifyDisposeThread, DebuggerThreadSchedulerProcPtr notifyThreadScheduler)
- { return mThreadCallbacks.AXSetDebuggerNotificationProcs(notifyNewThread, notifyDisposeThread, notifyThreadScheduler); }
-
- STDMETHOD( GetThreadCurrentTaskRef)(THIS_ ThreadTaskRef *threadTRef)
- { return mThreadCallbacks.AXGetThreadCurrentTaskRef(threadTRef); }
-
- STDMETHOD( GetThreadStateGivenTaskRef)(THIS_ ThreadTaskRef threadTRef, ThreadID threadToGet, ThreadState *threadState)
- { return mThreadCallbacks.AXGetThreadStateGivenTaskRef(threadTRef, threadToGet, threadState); }
-
- STDMETHOD( SetThreadReadyGivenTaskRef)(THIS_ ThreadTaskRef threadTRef, ThreadID threadToSet)
- { return mThreadCallbacks.AXSetThreadReadyGivenTaskRef(threadTRef, threadToSet); }
-
- private:
- AXThreadCallbacks mThreadCallbacks;
-
- };
-
-